﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

using System.Globalization;
using System.Threading;

using UbicaTuReu.WCF.Dominio;
using UbicaTuReu.WCF.Persistencia;
//using UPC.UbicatuReu.BE;

namespace UbicaTuReu.WCF
{    
    public class AgendaService : IAgendaService
    {

        private string format_fecha = "dd/MM/yyyy";

        private AgendaDAO oAgendaDAO = null;
        private AgendaDAO AgendaDAO
        {
            get
            {
                if (oAgendaDAO == null)
                    oAgendaDAO = new AgendaDAO();
                return oAgendaDAO;
            }
        }

        private AgendaReunionDAO oAgendaReunionDAO = null;
        private AgendaReunionDAO AgendaReunionDAO
        {
            get
            {
                if (oAgendaReunionDAO == null)
                    oAgendaReunionDAO = new AgendaReunionDAO();
                return oAgendaReunionDAO;
            }
        }

        public Agenda CrearAgenda(string Asunto, string Fecha, string HoraInicio, 
                            string HoraFin, string Descripcion, int SalaID)
        {
            CultureInfo ci;
            ci = new CultureInfo("es-PE"); //cultura de peru
            Agenda oAgenda = new Agenda();
            oAgenda.Asunto = Asunto;
            //oAgenda.Fecha = DateTime.ParseExact(Fecha, format_fecha, System.Globalization.CultureInfo.CurrentCulture);
            oAgenda.Fecha = DateTime.ParseExact(Fecha, format_fecha, ci);
            oAgenda.HoraInicio = HoraInicio;
            oAgenda.HoraFin = HoraFin;
            oAgenda.Descripcion = Descripcion;
            oAgenda.SalaID = SalaID;
            
            return AgendaDAO.Crear(oAgenda);
        }

        public Agenda ObtenerAgenda(int codigo)
        {
            return AgendaDAO.Obtener(codigo);
        }

        public AgendaUsuario ObtenerAgendaRegistrada() {

            UbicaTuReu.WCF.Models.AgendaUsuarioModels oAgendaModels = new UbicaTuReu.WCF.Models.AgendaUsuarioModels();

            List<AgendaUsuario> lstAgenda = new List<AgendaUsuario>();
            lstAgenda = oAgendaModels.CargarAgendaReunion();
            return lstAgenda[0];

        }

        //public List<UsuarioBE> CargarDDLUsuario() {

        //    List<UsuarioBE> lstUsuario = new List<UsuarioBE>();
        //    UbicaTuReu.WCF.Models.AgendaUsuarioModels oAgendaModels = new UbicaTuReu.WCF.Models.AgendaUsuarioModels();

        //    lstUsuario = oAgendaModels.CargarDDLUsuario();

        //    return lstUsuario;

        //}


        public AgendaReunion CrearAgendaReunion(int agendaID, int codigoUsuario) {

            AgendaReunion oAgendaReunion = new AgendaReunion();
            oAgendaReunion.AgendaID = agendaID;
            oAgendaReunion.CodigoUsuario = codigoUsuario;

            return AgendaReunionDAO.Crear(oAgendaReunion);
        }

        public List<Agenda> ListarAgenda()
        {
            return AgendaDAO.ListarTodos().ToList();
        }


    }
}
